package A一周刷爆LeetCode.A基础班.B认识复杂度和简单排序算法;

import A一周刷爆LeetCode.A基础班.A基础.Comparator;

import java.util.Arrays;

/**
 * @author wei.zhao
 * @description:
 * @date 2022年01月10日 14:43
 */
public abstract class Sort {

    /**
     * 测试
     */
    public void test() {
        for (int i = 0; i < 99; i++) {
            int[] arr = Comparator.generateRandomArray(100, 999);
            int[] arr2 = Comparator.copyArray(arr);
            //自己实现的排序算法
            sort(arr);
            //jdk自带的排序算法
            Arrays.sort(arr2);
            //比较排序后的结果是否一致
            System.out.println(Comparator.isEqual(arr, arr2));
        }
    }

    /**
     * 自定义排序算法
     */
    public abstract void sort(int[] arr);

    /**
     * 交换索引位置的值
     */
    public void swap(int[] arr, int i, int minIndex) {
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }

}
